[update] AWS Elemental MediaConvertでbandwidth reduction filterが利用可能になりました!
はじめに
清水です。AWS Media Servicesのアップデートをお届けするコーナーです。本エントリでお伝えするアップデート情報はこちら!ブロードキャストグレードの機能を備えたファイルベースの動画変換サービスであるAWS Elemental MediaConvertでHEVCおよびAVC向けにbandwidth reduction filterが利用可能になりました!(2023/06/21付のアップデート情報となります。)
bandwidth reduction filter (帯域幅削減フィルター)を利用することで、知覚できない信号やtemporal noiseを減らし、動画コンテンツの品質に影響を与えることなくビットレートの削減が可能とのことです。本エントリではこの bandwidth reduction filter を用いて動画コンテンツを変換、filterを使用しない場合との比較などをしてみました。動画コンテンツにより削減できる帯域幅に違いはありますが、動画品質に影響を与えることなく最大で8%強のビットレート削減が確認できました。
MediaConvertのbandwidth reduction filterについて
まずはこの bandwidth reduction filter について、とはどんなものか、またMediaConvertでどのように設定するのかを確認してみましょう。
bandwidth reduction filterはどんなことをするのか
AWS What's Newのアップデート情報ページから、bandwidth reduction filterの詳細について確認してみます。
MediaConvertでbandwidth reduction filterは、入力前処理のfilterとして動作するものということです。このfilterでは人間の視覚システムモデルを使用しており、カメラセンサーに起因することが多い、人間には知覚できない信号やtemporal noiseを減少させます。(temporal noiseについては、こちらの解説からカメラセンサーを通して混入してしまうランダムなノイズ、と理解しています。)
このbandwidth reduction filterを用いることで、例えばQuality-Defined Variable Bitrate (QVBR)と組み合わせて利用すれば、変換後の動画品質に影響を与えることなくビットレートを削減することが可能になります。また固定ビットレートで使用すれば、変換後の動画品質をよりよくすることができます。
temporal noiseについては、弱い(weakな)センサを用いて低照度条件下でキャプチャされた動画でよくみられるそうです。そのため、特にモバイルデバイスでキャプチャされたユーザ生成コンテンツを変換する際に、bandwidth reduction filterが効果的に働くということです。
bandwidth reduction filterの設定項目を確認
bandwidth reduction filterがどんなものかが確認できたところで、続いてはMediaConvert上での設定項目について確認してみましょう。
MediaConvertのマネジメントコンソールで[Create Job]から、Output groupを追加します。そして「Encoding settings (エンコード設定)」の項目の「Codec details (コーデック詳細)」を展開します。
Bandwidth reduction filter (帯域幅削減フィルター)の項目がありました!まずは Filter strength (フィルター強度) をLow
、Medium
、High
、Auto
、Off
から選択します。有効(Off
以外)にすると Sharpening strength (シャープニングの強さ) の項目が現れます。こちらも設定をLow
、Medium
、High
、Off
から選択するかたちです。
それぞれの設定項目については、マネジメントコンソールの「Info」のリンクから表示される情報が参考になります。以下、日本語表記にした際の内容を引用しておきます。
[帯域幅削減フィルター] は、そのビットレートに対する出力の動画品質を向上させます。知覚品質をほとんど、あるいはまったく低下させることなく、一定品質の QVBR 出力のビットレートを低くするために使用します。または、指定したビットレートに対して、他のレート制御モードで出力の動画品質を向上させるために使用します。入力が低品質であるか、またはノイズが多い場合は、帯域幅を低減させることでさらに向上できます。
この機能を使用して出力する場合、プロ用料金がかかります。
[帯域幅削減フィルター] を含める場合、[ノイズリデューサー] プリプロセッサを含めることはできません。
MediaConvert Management Console
Strength
[帯域幅削減フィルター] の強度を指定します。
ほとんどのワークフローでは、動画品質をほとんど、またはまったく知覚的に低下させることなく出力の帯域幅を低減させるために、[自動] を選択することをお勧めします。
高品質かつ高ビットレートの出力に対しては、[低] を選択します。
帯域幅を最大限に削減するには、[高] を選択します。低ビットレート出力に対しては、[高] を選択することをお勧めします。[高] を選択すると、出力のソフトネスがわずかに増加する可能性があります。
MediaConvert Management Console
Sharpening
オプションで、[帯域幅削減フィルター] を使用するときに適用するシャープニングのレベルを指定します。シャープニングは、ビデオコンテンツのエッジにコントラストを追加し、ソフトネスを低減できます。
シャープニングを適用しない場合は、デフォルト値である [オフ] のままにしておきます。[シャープニングの強さ] を [低] に設定すると最小限のシャープニングを適用し、[高] に設定すると最大限のシャープニングを適用します。
MediaConvert Management Console
なお、
bandwidth reduction filterを試してみる
続いてこのbandwidth reduction filterについて、実際に使用した場合と使用しない場合とでの比較をしてみましょう。動画変換の際に使用するPresetの作成から進めます。
bandwidth reduction filterを有効にした比較用PresetとJobの作成
さきほどはJob作成の画面でbandwidth reduction filterの設定項目を確認しました。同様にOutput presetでも設定項目がありOutput preset側で設定してJob作成時に設定を反映させるということも可能です。今回の検証ではこの方法でbandwidth reduction filterを有効にします。
Presetは「System presets」の「Generic-HD」、System-Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1920x1080p_30Hz_10Mbps_Qvbr_Vq9
をベースとします。
Presetの詳細画面に進み、[Duplicate]ボタンでPresetを複製します。
複製したPreset、NameはCustom-Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1920x1080p_30Hz_10Mbps_Qvbr_Vq9_BrfOn
としました。Descriptionにも「Bandwidth reduction filter On」と設定内容を記載しておきます。
Encoding settingsのCodec detailsでbandwidth reduction filterを有効にします。Filter strengthはHigh
としました。またSharpening strengthはデフォルトのOff
のままとします。設定できたら画面下部の[Create]ボタンでPresetを作成します。
bandwidth reduction filterを有効にしたPresetが作成できました。
続いてJob作成時にこのPresetを適用します。[Create job]から進み、Input file URLを指定します。Output groupsの追加でFile groupを指定、「Output settings」の項目で作成したPreset Custom-Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1920x1080p_30Hz_10Mbps_Qvbr_Vq9_BrfOn
を選択します。またName modifierとして「_BrfOn」、Extensionで「mp4」を指定しました。
Job作成前にBandwidth reduction filterの項目を確認しておきましょう。有効になっていますね。画面最下部の[Create Job]ボタンでJobを作成します。
なお比較用に、Preset作成時にベースとしたbandwidth reduction filterを有効にして いない Preset、System-Generic_Hd_Mp4_Avc_Aac_16x9_Sdr_1920x1080p_30Hz_10Mbps_Qvbr_Vq9
でもJobを作成しておきます。こちらはName modifierを「_BrfOff」と指定しました。
bandwidth reduction filter有無での比較
実際にbandwidth reduction filterを有効にして変換した動画と無効のままの変換した動画について、ビットレートや動画ファイル容量を比較してみます。QVBRで変換しているので、動画品質を維持しつつ、ビットレートとファイル容量が削減できることが期待されます。なお、変換された動画コンテンツについてもそれぞれ見比べてみましたが、bandwidth reduction filterの有無で区別はできない、つまり品質は同等と言えるものでした。
比較には私がiPhoneで撮影した3つの動画を使っています。それぞれ1分前後の動画です。変換後の動画ファイルについてS3からローカルPCにダウンロードしMediaInfoでビットレート、ファイル容量を確認しています。また削減率は(1-(brf有効の際の値/brf無効の際の値))*100
で計算しています。
その1: 夜の吉祥寺駅前南口
1つ目は夜の吉祥寺駅前、南口の高架下を撮影したものです。iPhone XSで撮影しました。動画の長さは1分1秒、フルHDの解像度です。8%強の削減率と、この動画が3つのうちで最も帯域幅削減の効果がありました。
brf 無効 | brf 有効 | 削減率 | |
---|---|---|---|
ビットレート | 7,999 kbps | 7,329 kbps | 8.38 % |
ファイル容量 | 59.8 MiB | 54.9MiB | 8.19 % |
その2: 夕暮れの吉祥寺駅前北口
2つ目の吉祥寺駅前を撮影したコンテンツです。今度は北口方面から、撮影はiPhone 13 Proを使用しました。動画の長さは54秒、4K HDの解像度です。1つ目ほど帯域幅削減はありませんが、 5%強の帯域削減削減 ができています。
brf 無効 | brf 有効 | 削減率 | |
---|---|---|---|
ビットレート | 7,910 kbps | 7,444 kbps | 5.89 % |
ファイル容量 | 51.9 MiB | 48.9 MiB | 5.78 % |
その3: 昼の井の頭公園
最後3つ目はお昼の井の頭公園を撮影した動画です。こちらもiPhone 13 Proで撮影しました。動画の長さは51秒、4K HDです。日中の映像でノイズが少なかったのか、 削減率は1%以下と大きくありませんでした。
brf 無効 | brf 有効 | 削減率 | |
---|---|---|---|
ビットレート | 8,019 kbps | 8,004 kbps | 0.19 % |
ファイル容量 | 50.0 MiB | 49.9 MiB | 0.20 % |
まとめ
AWS Elemental MediaConvertで新たに利用可能になったbandwidth reduction filterについて確認してみました。変換後の画質を維持しながら、コンテンツによって最大で8%ほどの帯域削減効果が確認できました。動画コンテンツによって帯域幅の削減効果は変わります。またfilter自体の設定項目(強弱など)、ビットレートやQVBR quality levelなどでも効果が変わってくるかもしれません。
モバイルデバイスを利用したユーザ生成のコンテンツに対して効果が高い、とリリース情報では謳っています。スマホなどで撮影した動画コンテンツを変換することが多いワークロードでは有効にすることで帯域幅の削減、またファイルサイズの減少に対して効果が期待できるかと思います。画質を維持しながら帯域幅を削減できるということは、保存するストレージ容量の削減や配信時のデータ転送量の削減につながります、嬉しいことづくしですよね。ワークロードがマッチする場合には是非とも設定しておきたいなと思いました。